package com.hzw.saas.api.workspace;

import java.io.File;
import java.io.OutputStream;
import java.util.List;

import com.hzw.saas.api.workspace.bo.UserWorkspaceFileBo;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *
 * </p>
 *
 * @author sonam
 * @since 2021/2/2 11:39
 */
public interface IFileManagerService {

    /**
     * 创建目录
     * @param dirPath
     */
    File createDir(String dirPath);

    /**
     * 删除目录
     * @param dirPath
     * @param rf
     */
    void removeDir(String dirPath, boolean rf);

    /**
     * 重命名文件或者目录
     * @param path
     * @param name
     */
    File rename(String path, String name);

    /**
     * 移动目录或者文件
     * @param path
     */
    void move(String path, String targetDir);

    /**
     * 复制目录或者文件
     * @param path
     */
    void copy(String path, String targetPath);

    List<UserWorkspaceFileBo> getFileList(String path);

    void uploadFile(MultipartFile file, String path);

    void downloadFile(String filepath, OutputStream ous);

    /**
     * 获取目录下文件数量
     * @param dirPath
     * @return
     */
    long getFileCount(String dirPath);

    /**
     * 获取目录下文件大小(单位字节)
     * @param dirPath
     * @return
     */
    long getFileSize(String dirPath);
}
